<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>原型链</title>
</head>
<body>
<script>
    function Star(uname,age){
        this.uname=uname;
        this.age=age;
    }
    // Star.prototype.sing=function (){
    //     console.log("111");
    // }
    Star.prototype={
        constructor:Star,
        sing:function(){
        console.log("111");
        },
        movie:function (){
            console.log("222");
        }
    }
    /*
    __proto__已弃用
    可用Object.getProtoTypeOf（） 替换
     */
    var ldh=new Star("ldh",18);
    //对象原型（proto）和构造函数（prototype）的原型对象中都有constructor属性，
    //它可以让原型对象重新指向原来的构造函数
    console.log(Star.prototype.constructor);
   // console.log(ldh.__proto__.constructor);
    console.log(Object.getPrototypeOf(ldh));
    /*
    原型链:
             _____(new)___  实例化对象
            /                 | (通过__proto__)
           /                  V
      构造函数------》  构造函数的原型对象prototype
                             |(通过__proto__)
                             V
     Object构造函数----》Object的原型对象prototype
                             |(通过__proto__)
                             V
                             null
   原型对象中的this指向实例化对象
     */
</script>
</body>
</html>